﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using ITKRestaurant.RestaurantServiceReference;
using MyWCFServices.RealRestaurantService;

namespace ITKRestaurant
{
    /// <summary>
    /// Interaction logic for EtlapGUI.xaml
    /// </summary>
    public partial class EtlapGUI : Window
    {
        RestaurantServiceClient client = null;
        MainWindow mw = null;

        List<FogyasztasiCikk> cikkek = new List<FogyasztasiCikk>();

        bool uj_cikk_ok = false;

        public EtlapGUI()
        {
            InitializeComponent();
        }

        public EtlapGUI(RestaurantServiceClient c,MainWindow m)
        {
            this.client = c;
            this.mw = m;
            InitializeComponent();
            initEtlap();
        }

        public void initEtlap()
        {
            cikkek = client.GetAllFogyasztasiCikkek().ToList();
            if (cikkek.Count == 0)
            {
                System.Console.WriteLine("nincs semmi");
            }
            comboBox1.Items.Clear();
            comboBox4.Items.Clear();

            comboBox1.Items.Add("Válasszon");
            comboBox4.Items.Add("Válasszon");

            comboBox1.Items.Add("étel");
            comboBox1.Items.Add("ital");
            comboBox1.Items.Add("egyéb");
            comboBox4.Items.Add("étel");
            comboBox4.Items.Add("ital");
            comboBox4.Items.Add("egyéb");


            comboBox1.SelectedItem = comboBox1.Items.GetItemAt(0);
            comboBox4.SelectedItem = comboBox4.Items.GetItemAt(0);
        }

        private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            comboBox2.Items.Clear();
            comboBox2.Items.Add("Válasszon");
            comboBox2.SelectedItem = comboBox2.Items.GetItemAt(0);
            if (comboBox1.SelectedItem == "étel")
            {
                var kajak = from i in cikkek
                           where i.FogyasztasiCikkTipus == FogyasztasiCikkTipus.Etel
                           orderby i.FogyasztasiCikkNev
                           select i;

                foreach (FogyasztasiCikk kaja in kajak)
                {                    
                    comboBox2.Items.Add(kaja.FogyasztasiCikkNev);
                }

            }
            if (comboBox1.SelectedItem == "ital")
            {
                var italok = from i in cikkek
                            where i.FogyasztasiCikkTipus == FogyasztasiCikkTipus.Ital
                            orderby i.FogyasztasiCikkNev
                            select i;
                foreach (FogyasztasiCikk pia in italok)
                {
                    comboBox2.Items.Add(pia.FogyasztasiCikkNev);
               } 

            }
            if (comboBox1.SelectedItem == "egyéb")
            {
                var egyebek = from i in cikkek
                             where i.FogyasztasiCikkTipus == FogyasztasiCikkTipus.Undefined
                             orderby i.FogyasztasiCikkNev
                             select i;
                foreach (FogyasztasiCikk egyeb in egyebek)
                {
                    comboBox2.Items.Add(egyeb.FogyasztasiCikkNev);
                }

            }
        }

        private void comboBox2_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

            var kivalasztott = from i in cikkek
                               where i.FogyasztasiCikkNev == comboBox2.SelectedItem
                               select i;
            foreach (FogyasztasiCikk cikk in kivalasztott)
            {
                textBox1.Text = cikk.FogyasztasiCikkNev;
                textBox2.Text = cikk.FogyasztasiCikkAr.ToString();
            }
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            var kivalasztott = from i in cikkek
                               where i.FogyasztasiCikkNev == comboBox2.SelectedItem
                               select i;
            foreach (FogyasztasiCikk cikk in kivalasztott)
            {
                cikk.FogyasztasiCikkNev = textBox1.Text;
                cikk.FogyasztasiCikkAr=Int16.Parse(textBox2.Text);
                client.UpdateFogyasztasiCikk(cikk);
            }
            
        }

        private void button3_Click(object sender, RoutedEventArgs e)
        {
            var kivalasztott = from i in cikkek
                               where i.FogyasztasiCikkNev == comboBox2.SelectedItem
                               select i;
            foreach (FogyasztasiCikk cikk in kivalasztott)
            {
                client.DeleteFogyasztasiCikk(cikk);
                cikkek.Remove(cikk);
            }
        }

        private void comboBox4_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            uj_cikk_ok = true;
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            FogyasztasiCikk uj_cikk = new FogyasztasiCikk();
            if (comboBox4.SelectedItem == "étel")
            {
                uj_cikk.FogyasztasiCikkTipus = FogyasztasiCikkTipus.Etel;
            }
            else if (comboBox4.SelectedItem == "ital")
            {
                uj_cikk.FogyasztasiCikkTipus = FogyasztasiCikkTipus.Ital;
            }
            else
            {
                uj_cikk.FogyasztasiCikkTipus = FogyasztasiCikkTipus.Undefined;
            }

            short szam;
            if (textBox3.Text == "" || textBox4.Text == "" || !Int16.TryParse(textBox4.Text, out szam))
            {
                MessageBox.Show("nem megfeleő argumantumok");
                return;
            }
            uj_cikk.FogyasztasiCikkNev = textBox3.Text;
            uj_cikk.FogyasztasiCikkAr = Int16.Parse( textBox4.Text);
            client.AddFogyasztasiCikk(uj_cikk);
            textBox3.Clear();
            textBox4.Clear();
            initEtlap();
        }

        private void button4_Click(object sender, RoutedEventArgs e)
        {
            mw.Show();
            this.Close();
        }
    }
}
